home *** CD-ROM | disk | FTP | other *** search
/ PC Media 2 / PC MEDIA CD02.iso / share / os2 / ncrvid21 / os2vid21.img / SVGA_M2.PM@ / SVGADATA.PMI
Encoding:
INI File  |  1993-10-10  |  59.0 KB  |  2,501 lines

  1. [comment]
  2.         Graphics Mode: 640 x 480 x 16 colours.
  3.  
  4. [AdapterType]
  5.         NCR
  6.  
  7. [ChipSet]
  8.         NCR77C22
  9.  
  10. [ModeInfo]
  11.         ModeAttributes   = 0x18
  12.         BytesPerScanLine = 80
  13.         XResolution      = 640
  14.         YResolution      = 480
  15.         TextRows         = 34
  16.         BitsPerPixel     = 4
  17.         NumberOfPlanes   = 4
  18.         PageLength       = 38400
  19.         SaveSize         = 153600
  20.         InterlaceMode    = 0
  21.         BufferAddress    = 0x0a0000
  22.  
  23. [TrapRegs]
  24.         0x3c2;
  25.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  26.         0x3c5;
  27.         0x3d4, 0x00-0x18, 0x30-0x31;
  28.         0x3d5;
  29.         0x3c0, 0x00-0x14;
  30.         0x3c1;
  31.         0x3ce, 0x00-0x08;
  32.         0x3cf;
  33.  
  34. [Cleanup]
  35.  
  36. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  37. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  38. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  39. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  40. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  41. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  42. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  43. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  44. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  45. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  46. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  47. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  48. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  49.  
  50. [Lock]
  51. /*
  52.  *      Lock Extended Registers
  53.  */
  54.  
  55. outb(0x3c4, 0x05);
  56. outb(0x3c5, 0x00);
  57.  
  58. [UnLock]
  59. /*
  60.  *      Unlock Extended Registers
  61.  */
  62.  
  63. outb(0x3c4, 0x05);
  64. outb(0x3c5, 0x01);
  65.  
  66. [SetMode]
  67.  
  68. /*
  69.  *      Set Miscellaneous Output Register
  70.  */
  71.  
  72. outb(0x3c2, 0xe3);
  73.  
  74.  
  75. /*
  76.  *      Unlock Extended Registers
  77.  */
  78.  
  79. outb(0x3c4, 0x05);
  80. outb(0x3c5, 0x01);
  81.  
  82. /*
  83.  *      Set Sequencer Registers
  84.  */
  85.  
  86. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  87. boutb(5, 0x00, 0x3c4, 0x3c5);
  88.  
  89. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xff;
  90. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  91. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  92. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  93. r30  = 0x11; r31  = 0x00; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  94. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  95. boutb(30, 0x0a, 0x3c4, 0x3c5);
  96.  
  97. /*
  98.  *      Set CRT Registers
  99.  */
  100.  
  101. r17 = 0x0e;
  102. boutb(1, 17, 0x3d4, 0x3d5);
  103. r0   = 0x5f; r1   = 0x4f; r2   = 0x50; r3   = 0x82; r4   = 0x54;
  104. r5   = 0x80; r6   = 0x0b; r7   = 0x3e; r8   = 0x00; r9   = 0x40;
  105. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  106. r15  = 0x00; r16  = 0xea; r17  = 0x8c; r18  = 0xdf; r19  = 0x28;
  107. r20  = 0x00; r21  = 0xe7; r22  = 0x04; r23  = 0xe3; r24  = 0xff;
  108. boutb(25, 0x00, 0x3d4, 0x3d5);
  109.  
  110. r48  = 0x00; r49  = 0x00;
  111. boutb(2, 0x30, 0x3d4, 0x3d5);
  112.  
  113. /*
  114.  *      Set Attribute Registers
  115.  */
  116.  
  117. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  118. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  119. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  120. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  121. r20  = 0x00;
  122. boutb(21, 0x00, 0x3c0, 0x3c1);
  123.  
  124. /*
  125.  *      Set GDC Registers
  126.  */
  127.  
  128. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  129. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  130. boutb(9, 0x00, 0x3ce, 0x3cf);
  131.  
  132. /*
  133.  *      Set Sequencer Registers
  134.  */
  135.  
  136. r5   = 0x01;
  137. boutb(1, 0x05, 0x3c4, 0x3c5);
  138.  
  139. [comment]
  140.         Graphics Mode: 640 x 480 x 256 colours.
  141.  
  142. [AdapterType]
  143.         NCR
  144.  
  145. [ChipSet]
  146.         NCR77C22
  147.  
  148. [ModeInfo]
  149.         ModeAttributes   = 0x18
  150.         BytesPerScanLine = 80
  151.         XResolution      = 640
  152.         YResolution      = 480
  153.         TextRows         = 30
  154.         BitsPerPixel     = 8
  155.         NumberOfPlanes   = 1
  156.         PageLength       = 307200
  157.         SaveSize         = 307200
  158.         InterlaceMode    = 0
  159.         BufferAddress    = 0x0a0000
  160.  
  161. [TrapRegs]
  162.         0x3c2;
  163.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  164.         0x3c5;
  165.         0x3d4, 0x00-0x18, 0x30-0x31;
  166.         0x3d5;
  167.         0x3c0, 0x00-0x14;
  168.         0x3c1;
  169.         0x3ce, 0x00-0x08;
  170.         0x3cf;
  171.  
  172. [Cleanup]
  173.  
  174. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  175. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  176. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  177. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  178. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  179. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  180. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  181. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  182. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  183. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  184. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  185. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  186. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  187.  
  188. [Lock]
  189. /*
  190.  *      Lock Extended Registers
  191.  */
  192.  
  193. outb(0x3c4, 0x05);
  194. outb(0x3c5, 0x00);
  195.  
  196. [UnLock]
  197. /*
  198.  *      Unlock Extended Registers
  199.  */
  200.  
  201. outb(0x3c4, 0x05);
  202. outb(0x3c5, 0x01);
  203.  
  204. [SetMode]
  205.  
  206. /*
  207.  *      Set Miscellaneous Output Register
  208.  */
  209.  
  210. outb(0x3c2, 0xe3);
  211.  
  212.  
  213. /*
  214.  *      Unlock Extended Registers
  215.  */
  216.  
  217. outb(0x3c4, 0x05);
  218. outb(0x3c5, 0x01);
  219.  
  220. /*
  221.  *      Set Sequencer Registers
  222.  */
  223.  
  224. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  225. boutb(5, 0x00, 0x3c4, 0x3c5);
  226.  
  227. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xff;
  228. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  229. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  230. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  231. r30  = 0x1d; r31  = 0x10; r32  = 0x02; r33  = 0x01; r34  = 0x03;
  232. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  233. boutb(30, 0x0a, 0x3c4, 0x3c5);
  234.  
  235. /*
  236.  *      Set CRT Registers
  237.  */
  238.  
  239. r17 = 0x0e;
  240. boutb(1, 17, 0x3d4, 0x3d5);
  241. r0   = 0xc3; r1   = 0x9f; r2   = 0xa1; r3   = 0x85; r4   = 0xa9;
  242. r5   = 0x01; r6   = 0x0b; r7   = 0x3e; r8   = 0x00; r9   = 0x40;
  243. r10  = 0x10; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  244. r15  = 0x00; r16  = 0xea; r17  = 0x8c; r18  = 0xdf; r19  = 0x50;
  245. r20  = 0x00; r21  = 0xe7; r22  = 0x04; r23  = 0xe3; r24  = 0xff;
  246. boutb(25, 0x00, 0x3d4, 0x3d5);
  247.  
  248. r48  = 0x00; r49  = 0x00;
  249. boutb(2, 0x30, 0x3d4, 0x3d5);
  250.  
  251. /*
  252.  *      Set Attribute Registers
  253.  */
  254.  
  255. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  256. r5   = 0x05; r6   = 0x06; r7   = 0x07; r8   = 0x08; r9   = 0x09;
  257. r10  = 0x0a; r11  = 0x0b; r12  = 0x0c; r13  = 0x0d; r14  = 0x0e;
  258. r15  = 0x0f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  259. r20  = 0x00;
  260. boutb(21, 0x00, 0x3c0, 0x3c1);
  261.  
  262. /*
  263.  *      Set GDC Registers
  264.  */
  265.  
  266. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  267. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  268. boutb(9, 0x00, 0x3ce, 0x3cf);
  269.  
  270. /*
  271.  *      Set Sequencer Registers
  272.  */
  273.  
  274. r5   = 0x01;
  275. boutb(1, 0x05, 0x3c4, 0x3c5);
  276.  
  277. [comment]
  278.         Graphics Mode: 800 x 600 x 16 colours.
  279.  
  280. [AdapterType]
  281.         NCR
  282.  
  283. [ChipSet]
  284.         NCR77C22
  285.  
  286. [ModeInfo]
  287.         ModeAttributes   = 0x18
  288.         BytesPerScanLine = 100
  289.         XResolution      = 800
  290.         YResolution      = 600
  291.         TextRows         = 37
  292.         BitsPerPixel     = 4
  293.         NumberOfPlanes   = 4
  294.         PageLength       = 60000
  295.         SaveSize         = 240000
  296.         InterlaceMode    = 0
  297.         BufferAddress    = 0x0a0000
  298.  
  299. [TrapRegs]
  300.         0x3c2;
  301.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  302.         0x3c5;
  303.         0x3d4, 0x00-0x18, 0x30-0x31;
  304.         0x3d5;
  305.         0x3c0, 0x00-0x14;
  306.         0x3c1;
  307.         0x3ce, 0x00-0x08;
  308.         0x3cf;
  309.  
  310. [Cleanup]
  311.  
  312. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  313. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  314. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  315. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  316. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  317. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  318. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  319. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  320. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  321. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  322. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  323. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  324. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  325.  
  326. [Lock]
  327. /*
  328.  *      Lock Extended Registers
  329.  */
  330.  
  331. outb(0x3c4, 0x05);
  332. outb(0x3c5, 0x00);
  333.  
  334. [UnLock]
  335. /*
  336.  *      Unlock Extended Registers
  337.  */
  338.  
  339. outb(0x3c4, 0x05);
  340. outb(0x3c5, 0x01);
  341.  
  342. [SetMode]
  343.  
  344. /*
  345.  *      Set Miscellaneous Output Register
  346.  */
  347.  
  348. outb(0x3c2, 0xeb);
  349.  
  350.  
  351. /*
  352.  *      Unlock Extended Registers
  353.  */
  354.  
  355. outb(0x3c4, 0x05);
  356. outb(0x3c5, 0x01);
  357.  
  358. /*
  359.  *      Set Sequencer Registers
  360.  */
  361.  
  362. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  363. boutb(5, 0x00, 0x3c4, 0x3c5);
  364.  
  365. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xff;
  366. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  367. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  368. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  369. r30  = 0x11; r31  = 0x00; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  370. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  371. boutb(30, 0x0a, 0x3c4, 0x3c5);
  372.  
  373. /*
  374.  *      Set CRT Registers
  375.  */
  376.  
  377. r17 = 0x0e;
  378. boutb(1, 17, 0x3d4, 0x3d5);
  379. r0   = 0x7b; r1   = 0x63; r2   = 0x64; r3   = 0x9e; r4   = 0x69;
  380. r5   = 0x92; r6   = 0x6f; r7   = 0xf0; r8   = 0x00; r9   = 0x60;
  381. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  382. r15  = 0x00; r16  = 0x58; r17  = 0x8a; r18  = 0x57; r19  = 0x32;
  383. r20  = 0x00; r21  = 0x58; r22  = 0x6f; r23  = 0xe3; r24  = 0xff;
  384. boutb(25, 0x00, 0x3d4, 0x3d5);
  385.  
  386. r48  = 0x00; r49  = 0x00;
  387. boutb(2, 0x30, 0x3d4, 0x3d5);
  388.  
  389. /*
  390.  *      Set Attribute Registers
  391.  */
  392.  
  393. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  394. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  395. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  396. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  397. r20  = 0x00;
  398. boutb(21, 0x00, 0x3c0, 0x3c1);
  399.  
  400. /*
  401.  *      Set GDC Registers
  402.  */
  403.  
  404. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  405. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  406. boutb(9, 0x00, 0x3ce, 0x3cf);
  407.  
  408. /*
  409.  *      Set Sequencer Registers
  410.  */
  411.  
  412. r5   = 0x01;
  413. boutb(1, 0x05, 0x3c4, 0x3c5);
  414.  
  415. [comment]
  416.         Graphics Mode: 800 x 600 x 256 colours.
  417.  
  418. [AdapterType]
  419.         NCR
  420.  
  421. [ChipSet]
  422.         NCR77C22
  423.  
  424. [ModeInfo]
  425.         ModeAttributes   = 0x18
  426.         BytesPerScanLine = 100
  427.         XResolution      = 800
  428.         YResolution      = 600
  429.         TextRows         = 37
  430.         BitsPerPixel     = 8
  431.         NumberOfPlanes   = 1
  432.         PageLength       = 480000
  433.         SaveSize         = 480000
  434.         InterlaceMode    = 0
  435.         BufferAddress    = 0x0a0000
  436.  
  437. [TrapRegs]
  438.         0x3c2;
  439.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  440.         0x3c5;
  441.         0x3d4, 0x00-0x18, 0x30-0x31;
  442.         0x3d5;
  443.         0x3c0, 0x00-0x14;
  444.         0x3c1;
  445.         0x3ce, 0x00-0x08;
  446.         0x3cf;
  447.  
  448. [Cleanup]
  449.  
  450. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  451. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  452. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  453. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  454. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  455. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  456. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  457. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  458. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  459. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  460. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  461. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  462. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  463.  
  464. [Lock]
  465. /*
  466.  *      Lock Extended Registers
  467.  */
  468.  
  469. outb(0x3c4, 0x05);
  470. outb(0x3c5, 0x00);
  471.  
  472. [UnLock]
  473. /*
  474.  *      Unlock Extended Registers
  475.  */
  476.  
  477. outb(0x3c4, 0x05);
  478. outb(0x3c5, 0x01);
  479.  
  480. [SetMode]
  481.  
  482. /*
  483.  *      Set Miscellaneous Output Register
  484.  */
  485.  
  486. outb(0x3c2, 0xeb);
  487.  
  488.  
  489. /*
  490.  *      Unlock Extended Registers
  491.  */
  492.  
  493. outb(0x3c4, 0x05);
  494. outb(0x3c5, 0x01);
  495.  
  496. /*
  497.  *      Set Sequencer Registers
  498.  */
  499.  
  500. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  501. boutb(5, 0x00, 0x3c4, 0x3c5);
  502.  
  503. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xff;
  504. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  505. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  506. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  507. r30  = 0x1d; r31  = 0x10; r32  = 0x02; r33  = 0x01; r34  = 0x03;
  508. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  509. boutb(30, 0x0a, 0x3c4, 0x3c5);
  510.  
  511. /*
  512.  *      Set CRT Registers
  513.  */
  514.  
  515. r17 = 0x0e;
  516. boutb(1, 17, 0x3d4, 0x3d5);
  517. r0   = 0xfb; r1   = 0xc7; r2   = 0xc9; r3   = 0x9d; r4   = 0xd1;
  518. r5   = 0x83; r6   = 0x6f; r7   = 0xf0; r8   = 0x00; r9   = 0x60;
  519. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  520. r15  = 0x00; r16  = 0x58; r17  = 0x8a; r18  = 0x57; r19  = 0x64;
  521. r20  = 0x00; r21  = 0x58; r22  = 0x6f; r23  = 0xe3; r24  = 0xff;
  522. boutb(25, 0x00, 0x3d4, 0x3d5);
  523.  
  524. r48  = 0x00; r49  = 0x00;
  525. boutb(2, 0x30, 0x3d4, 0x3d5);
  526.  
  527. /*
  528.  *      Set Attribute Registers
  529.  */
  530.  
  531. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  532. r5   = 0x05; r6   = 0x06; r7   = 0x07; r8   = 0x08; r9   = 0x09;
  533. r10  = 0x0a; r11  = 0x0b; r12  = 0x0c; r13  = 0x0d; r14  = 0x0e;
  534. r15  = 0x0f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  535. r20  = 0x00;
  536. boutb(21, 0x00, 0x3c0, 0x3c1);
  537.  
  538. /*
  539.  *      Set GDC Registers
  540.  */
  541.  
  542. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  543. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  544. boutb(9, 0x00, 0x3ce, 0x3cf);
  545.  
  546. /*
  547.  *      Set Sequencer Registers
  548.  */
  549.  
  550. r5   = 0x01;
  551. boutb(1, 0x05, 0x3c4, 0x3c5);
  552.  
  553. [comment]
  554.         Text Mode: 40 cols, 25 rows.
  555.  
  556. [AdapterType]
  557.         NCR
  558.  
  559. [ChipSet]
  560.         NCR77C22
  561.  
  562. [ModeInfo]
  563.         ModeAttributes   = 0x08
  564.         BytesPerScanLine = 40
  565.         XResolution      = 360
  566.         YResolution      = 400
  567.         XCharSize        = 9
  568.         YCharSize        = 16
  569.         TextRows         = 25
  570.         BitsPerPixel     = 4
  571.         NumberOfPlanes   = 1
  572.         PageLength       = 4000
  573.         SaveSize         = 4000
  574.         InterlaceMode    = 0
  575.         BufferAddress    = 0x0b8000
  576.  
  577. [TrapRegs]
  578.         0x3c2;
  579.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  580.         0x3c5;
  581.         0x3d4, 0x00-0x18, 0x30-0x31;
  582.         0x3d5;
  583.         0x3c0, 0x00-0x14;
  584.         0x3c1;
  585.         0x3ce, 0x00-0x08;
  586.         0x3cf;
  587.  
  588. [Cleanup]
  589.  
  590. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  591. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  592. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  593. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  594. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  595. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  596. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  597. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  598. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  599. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  600. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  601. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  602. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  603.  
  604. [Lock]
  605. /*
  606.  *      Lock Extended Registers
  607.  */
  608.  
  609. outb(0x3c4, 0x05);
  610. outb(0x3c5, 0x00);
  611.  
  612. [UnLock]
  613. /*
  614.  *      Unlock Extended Registers
  615.  */
  616.  
  617. outb(0x3c4, 0x05);
  618. outb(0x3c5, 0x01);
  619.  
  620. [SetMode]
  621.  
  622. /*
  623.  *      Set Miscellaneous Output Register
  624.  */
  625.  
  626. outb(0x3c2, 0x67);
  627.  
  628.  
  629. /*
  630.  *      Unlock Extended Registers
  631.  */
  632.  
  633. outb(0x3c4, 0x05);
  634. outb(0x3c5, 0x01);
  635.  
  636. /*
  637.  *      Set Sequencer Registers
  638.  */
  639.  
  640. r0   = 0x03; r1   = 0x08; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  641. boutb(5, 0x00, 0x3c4, 0x3c5);
  642.  
  643. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xff;
  644. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  645. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  646. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  647. r30  = 0x11; r31  = 0x00; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  648. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  649. boutb(30, 0x0a, 0x3c4, 0x3c5);
  650.  
  651. /*
  652.  *      Set CRT Registers
  653.  */
  654.  
  655. r17 = 0x0e;
  656. boutb(1, 17, 0x3d4, 0x3d5);
  657. r0   = 0x2d; r1   = 0x27; r2   = 0x28; r3   = 0x90; r4   = 0x2b;
  658. r5   = 0xa0; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  659. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  660. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x14;
  661. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  662. boutb(25, 0x00, 0x3d4, 0x3d5);
  663.  
  664. r48  = 0x00; r49  = 0x00;
  665. boutb(2, 0x30, 0x3d4, 0x3d5);
  666.  
  667. /*
  668.  *      Set Attribute Registers
  669.  */
  670.  
  671. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  672. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  673. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  674. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x08;
  675. r20  = 0x00;
  676. boutb(21, 0x00, 0x3c0, 0x3c1);
  677.  
  678. /*
  679.  *      Set GDC Registers
  680.  */
  681.  
  682. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  683. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  684. boutb(9, 0x00, 0x3ce, 0x3cf);
  685.  
  686. /*
  687.  *      Set Sequencer Registers
  688.  */
  689.  
  690. r5   = 0x01;
  691. boutb(1, 0x05, 0x3c4, 0x3c5);
  692.  
  693. [comment]
  694.         Text Mode: 80 cols, 25 rows.
  695.  
  696. [AdapterType]
  697.         NCR
  698.  
  699. [ChipSet]
  700.         NCR77C22
  701.  
  702. [ModeInfo]
  703.         ModeAttributes   = 0x08
  704.         BytesPerScanLine = 80
  705.         XResolution      = 720
  706.         YResolution      = 400
  707.         XCharSize        = 9
  708.         YCharSize        = 16
  709.         TextRows         = 25
  710.         BitsPerPixel     = 4
  711.         NumberOfPlanes   = 1
  712.         PageLength       = 4000
  713.         SaveSize         = 4000
  714.         InterlaceMode    = 0
  715.         BufferAddress    = 0x0b8000
  716.  
  717. [TrapRegs]
  718.         0x3c2;
  719.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  720.         0x3c5;
  721.         0x3d4, 0x00-0x18, 0x30-0x31;
  722.         0x3d5;
  723.         0x3c0, 0x00-0x14;
  724.         0x3c1;
  725.         0x3ce, 0x00-0x08;
  726.         0x3cf;
  727.  
  728. [Cleanup]
  729.  
  730. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  731. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  732. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  733. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  734. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  735. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  736. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  737. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  738. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  739. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  740. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  741. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  742. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  743.  
  744. [Lock]
  745. /*
  746.  *      Lock Extended Registers
  747.  */
  748.  
  749. outb(0x3c4, 0x05);
  750. outb(0x3c5, 0x00);
  751.  
  752. [UnLock]
  753. /*
  754.  *      Unlock Extended Registers
  755.  */
  756.  
  757. outb(0x3c4, 0x05);
  758. outb(0x3c5, 0x01);
  759.  
  760. [SetMode]
  761.  
  762. /*
  763.  *      Set Miscellaneous Output Register
  764.  */
  765.  
  766. outb(0x3c2, 0x67);
  767.  
  768.  
  769. /*
  770.  *      Unlock Extended Registers
  771.  */
  772.  
  773. outb(0x3c4, 0x05);
  774. outb(0x3c5, 0x01);
  775.  
  776. /*
  777.  *      Set Sequencer Registers
  778.  */
  779.  
  780. r0   = 0x03; r1   = 0x00; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  781. boutb(5, 0x00, 0x3c4, 0x3c5);
  782.  
  783. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xff;
  784. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  785. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  786. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  787. r30  = 0x11; r31  = 0x00; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  788. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  789. boutb(30, 0x0a, 0x3c4, 0x3c5);
  790.  
  791. /*
  792.  *      Set CRT Registers
  793.  */
  794.  
  795. r17 = 0x0e;
  796. boutb(1, 17, 0x3d4, 0x3d5);
  797. r0   = 0x5f; r1   = 0x4f; r2   = 0x50; r3   = 0x82; r4   = 0x55;
  798. r5   = 0x81; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  799. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  800. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x28;
  801. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  802. boutb(25, 0x00, 0x3d4, 0x3d5);
  803.  
  804. r48  = 0x00; r49  = 0x00;
  805. boutb(2, 0x30, 0x3d4, 0x3d5);
  806.  
  807. /*
  808.  *      Set Attribute Registers
  809.  */
  810.  
  811. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  812. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  813. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  814. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x08;
  815. r20  = 0x00;
  816. boutb(21, 0x00, 0x3c0, 0x3c1);
  817.  
  818. /*
  819.  *      Set GDC Registers
  820.  */
  821.  
  822. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  823. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  824. boutb(9, 0x00, 0x3ce, 0x3cf);
  825.  
  826. /*
  827.  *      Set Sequencer Registers
  828.  */
  829.  
  830. r5   = 0x01;
  831. boutb(1, 0x05, 0x3c4, 0x3c5);
  832.  
  833. [comment]
  834.         Text Mode: 132 cols, 25 rows.
  835.  
  836. [AdapterType]
  837.         NCR
  838.  
  839. [ChipSet]
  840.         NCR77C22
  841.  
  842. [ModeInfo]
  843.         ModeAttributes   = 0x08
  844.         BytesPerScanLine = 132
  845.         XResolution      = 1056
  846.         YResolution      = 400
  847.         XCharSize        = 8
  848.         YCharSize        = 16
  849.         TextRows         = 25
  850.         BitsPerPixel     = 4
  851.         NumberOfPlanes   = 1
  852.         PageLength       = 6600
  853.         SaveSize         = 6600
  854.         InterlaceMode    = 0
  855.         BufferAddress    = 0x0b8000
  856.  
  857. [TrapRegs]
  858.         0x3c2;
  859.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  860.         0x3c5;
  861.         0x3d4, 0x00-0x18, 0x30-0x31;
  862.         0x3d5;
  863.         0x3c0, 0x00-0x14;
  864.         0x3c1;
  865.         0x3ce, 0x00-0x08;
  866.         0x3cf;
  867.  
  868. [Cleanup]
  869.  
  870. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  871. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  872. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  873. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  874. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  875. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  876. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  877. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  878. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  879. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  880. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  881. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  882. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  883.  
  884. [Lock]
  885. /*
  886.  *      Lock Extended Registers
  887.  */
  888.  
  889. outb(0x3c4, 0x05);
  890. outb(0x3c5, 0x00);
  891.  
  892. [UnLock]
  893. /*
  894.  *      Unlock Extended Registers
  895.  */
  896.  
  897. outb(0x3c4, 0x05);
  898. outb(0x3c5, 0x01);
  899.  
  900. [SetMode]
  901.  
  902. /*
  903.  *      Set Miscellaneous Output Register
  904.  */
  905.  
  906. outb(0x3c2, 0x6b);
  907.  
  908.  
  909. /*
  910.  *      Unlock Extended Registers
  911.  */
  912.  
  913. outb(0x3c4, 0x05);
  914. outb(0x3c5, 0x01);
  915.  
  916. /*
  917.  *      Set Sequencer Registers
  918.  */
  919.  
  920. r0   = 0x03; r1   = 0x00; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  921. boutb(5, 0x00, 0x3c4, 0x3c5);
  922.  
  923. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xff;
  924. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  925. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  926. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  927. r30  = 0x11; r31  = 0x11; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  928. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  929. boutb(30, 0x0a, 0x3c4, 0x3c5);
  930.  
  931. /*
  932.  *      Set CRT Registers
  933.  */
  934.  
  935. r17 = 0x0e;
  936. boutb(1, 17, 0x3d4, 0x3d5);
  937. r0   = 0x9e; r1   = 0x83; r2   = 0x84; r3   = 0x81; r4   = 0x8a;
  938. r5   = 0x9e; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  939. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  940. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x42;
  941. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  942. boutb(25, 0x00, 0x3d4, 0x3d5);
  943.  
  944. r48  = 0x00; r49  = 0x00;
  945. boutb(2, 0x30, 0x3d4, 0x3d5);
  946.  
  947. /*
  948.  *      Set Attribute Registers
  949.  */
  950.  
  951. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  952. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  953. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  954. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  955. r20  = 0x00;
  956. boutb(21, 0x00, 0x3c0, 0x3c1);
  957.  
  958. /*
  959.  *      Set GDC Registers
  960.  */
  961.  
  962. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  963. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  964. boutb(9, 0x00, 0x3ce, 0x3cf);
  965.  
  966. /*
  967.  *      Set Sequencer Registers
  968.  */
  969.  
  970. r5   = 0x01;
  971. boutb(1, 0x05, 0x3c4, 0x3c5);
  972.  
  973. [comment]
  974.         Text Mode: 132 cols, 43 rows.
  975.  
  976. [AdapterType]
  977.         NCR
  978.  
  979. [ChipSet]
  980.         NCR77C22
  981.  
  982. [ModeInfo]
  983.         ModeAttributes   = 0x08
  984.         BytesPerScanLine = 132
  985.         XResolution      = 1056
  986.         YResolution      = 387
  987.         XCharSize        = 8
  988.         YCharSize        = 8
  989.         TextRows         = 43
  990.         BitsPerPixel     = 4
  991.         NumberOfPlanes   = 1
  992.         PageLength       = 11352
  993.         SaveSize         = 11352
  994.         InterlaceMode    = 0
  995.         BufferAddress    = 0x0b8000
  996.  
  997. [TrapRegs]
  998.         0x3c2;
  999.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1000.         0x3c5;
  1001.         0x3d4, 0x00-0x18, 0x30-0x31;
  1002.         0x3d5;
  1003.         0x3c0, 0x00-0x14;
  1004.         0x3c1;
  1005.         0x3ce, 0x00-0x08;
  1006.         0x3cf;
  1007.  
  1008. [Cleanup]
  1009.  
  1010. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1011. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1012. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1013. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  1014. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  1015. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1016. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1017. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  1018. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  1019. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1020. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1021. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  1022. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  1023.  
  1024. [Lock]
  1025. /*
  1026.  *      Lock Extended Registers
  1027.  */
  1028.  
  1029. outb(0x3c4, 0x05);
  1030. outb(0x3c5, 0x00);
  1031.  
  1032. [UnLock]
  1033. /*
  1034.  *      Unlock Extended Registers
  1035.  */
  1036.  
  1037. outb(0x3c4, 0x05);
  1038. outb(0x3c5, 0x01);
  1039.  
  1040. [SetMode]
  1041.  
  1042. /*
  1043.  *      Set Miscellaneous Output Register
  1044.  */
  1045.  
  1046. outb(0x3c2, 0x6b);
  1047.  
  1048.  
  1049. /*
  1050.  *      Unlock Extended Registers
  1051.  */
  1052.  
  1053. outb(0x3c4, 0x05);
  1054. outb(0x3c5, 0x01);
  1055.  
  1056. /*
  1057.  *      Set Sequencer Registers
  1058.  */
  1059.  
  1060. r0   = 0x03; r1   = 0x01; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  1061. boutb(5, 0x00, 0x3c4, 0x3c5);
  1062.  
  1063. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xff;
  1064. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  1065. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  1066. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  1067. r30  = 0x11; r31  = 0x11; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  1068. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  1069. boutb(30, 0x0a, 0x3c4, 0x3c5);
  1070.  
  1071. /*
  1072.  *      Set CRT Registers
  1073.  */
  1074.  
  1075. r17 = 0x0e;
  1076. boutb(1, 17, 0x3d4, 0x3d5);
  1077. r0   = 0x9e; r1   = 0x83; r2   = 0x84; r3   = 0x81; r4   = 0x8a;
  1078. r5   = 0x9e; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x48;
  1079. r10  = 0x07; r11  = 0x08; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1080. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x42;
  1081. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  1082. boutb(25, 0x00, 0x3d4, 0x3d5);
  1083.  
  1084. r48  = 0x00; r49  = 0x00;
  1085. boutb(2, 0x30, 0x3d4, 0x3d5);
  1086.  
  1087. /*
  1088.  *      Set Attribute Registers
  1089.  */
  1090.  
  1091. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1092. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  1093. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  1094. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1095. r20  = 0x00;
  1096. boutb(21, 0x00, 0x3c0, 0x3c1);
  1097.  
  1098. /*
  1099.  *      Set GDC Registers
  1100.  */
  1101.  
  1102. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1103. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  1104. boutb(9, 0x00, 0x3ce, 0x3cf);
  1105.  
  1106. /*
  1107.  *      Set Sequencer Registers
  1108.  */
  1109.  
  1110. r5   = 0x01;
  1111. boutb(1, 0x05, 0x3c4, 0x3c5);
  1112.  
  1113. [comment]
  1114.         Graphics Mode: 640 x 480 x 16 colours.
  1115.  
  1116. [AdapterType]
  1117.         NCR
  1118.  
  1119. [ChipSet]
  1120.         NCR77C22E
  1121.  
  1122. [ModeInfo]
  1123.         ModeAttributes   = 0x18
  1124.         BytesPerScanLine = 80
  1125.         XResolution      = 640
  1126.         YResolution      = 480
  1127.         TextRows         = 34
  1128.         BitsPerPixel     = 4
  1129.         NumberOfPlanes   = 4
  1130.         PageLength       = 38400
  1131.         SaveSize         = 153600
  1132.         InterlaceMode    = 0
  1133.         BufferAddress    = 0x0a0000
  1134.  
  1135. [TrapRegs]
  1136.         0x3c2;
  1137.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1138.         0x3c5;
  1139.         0x3d4, 0x00-0x18, 0x30-0x31;
  1140.         0x3d5;
  1141.         0x3c0, 0x00-0x14;
  1142.         0x3c1;
  1143.         0x3ce, 0x00-0x08;
  1144.         0x3cf;
  1145.  
  1146. [Cleanup]
  1147.  
  1148. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1149. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1150. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1151. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  1152. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  1153. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1154. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1155. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  1156. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  1157. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1158. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1159. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  1160. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  1161.  
  1162. [Lock]
  1163. /*
  1164.  *      Lock Extended Registers
  1165.  */
  1166.  
  1167. outb(0x3c4, 0x05);
  1168. outb(0x3c5, 0x00);
  1169.  
  1170. [UnLock]
  1171. /*
  1172.  *      Unlock Extended Registers
  1173.  */
  1174.  
  1175. outb(0x3c4, 0x05);
  1176. outb(0x3c5, 0x01);
  1177.  
  1178. [SetMode]
  1179.  
  1180. /*
  1181.  *      Set Miscellaneous Output Register
  1182.  */
  1183.  
  1184. outb(0x3c2, 0xe3);
  1185.  
  1186.  
  1187. /*
  1188.  *      Unlock Extended Registers
  1189.  */
  1190.  
  1191. outb(0x3c4, 0x05);
  1192. outb(0x3c5, 0x01);
  1193.  
  1194. /*
  1195.  *      Set Sequencer Registers
  1196.  */
  1197.  
  1198. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  1199. boutb(5, 0x00, 0x3c4, 0x3c5);
  1200.  
  1201. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x00;
  1202. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  1203. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  1204. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  1205. r30  = 0x01; r31  = 0x20; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  1206. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  1207. boutb(30, 0x0a, 0x3c4, 0x3c5);
  1208.  
  1209. /*
  1210.  *      Set CRT Registers
  1211.  */
  1212.  
  1213. r17 = 0x0e;
  1214. boutb(1, 17, 0x3d4, 0x3d5);
  1215. r0   = 0x5f; r1   = 0x4f; r2   = 0x50; r3   = 0x82; r4   = 0x54;
  1216. r5   = 0x80; r6   = 0x0b; r7   = 0x3e; r8   = 0x00; r9   = 0x40;
  1217. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1218. r15  = 0x00; r16  = 0xea; r17  = 0x8c; r18  = 0xdf; r19  = 0x28;
  1219. r20  = 0x00; r21  = 0xe7; r22  = 0x04; r23  = 0xe3; r24  = 0xff;
  1220. boutb(25, 0x00, 0x3d4, 0x3d5);
  1221.  
  1222. r48  = 0x00; r49  = 0x00;
  1223. boutb(2, 0x30, 0x3d4, 0x3d5);
  1224.  
  1225. /*
  1226.  *      Set Attribute Registers
  1227.  */
  1228.  
  1229. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1230. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  1231. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  1232. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1233. r20  = 0x00;
  1234. boutb(21, 0x00, 0x3c0, 0x3c1);
  1235.  
  1236. /*
  1237.  *      Set GDC Registers
  1238.  */
  1239.  
  1240. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1241. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  1242. boutb(9, 0x00, 0x3ce, 0x3cf);
  1243.  
  1244. /*
  1245.  *      Set Sequencer Registers
  1246.  */
  1247.  
  1248. r5   = 0x01;
  1249. boutb(1, 0x05, 0x3c4, 0x3c5);
  1250.  
  1251. [comment]
  1252.         Graphics Mode: 640 x 480 x 256 colours.
  1253.  
  1254. [AdapterType]
  1255.         NCR
  1256.  
  1257. [ChipSet]
  1258.         NCR77C22E
  1259.  
  1260. [ModeInfo]
  1261.         ModeAttributes   = 0x18
  1262.         BytesPerScanLine = 80
  1263.         XResolution      = 640
  1264.         YResolution      = 480
  1265.         TextRows         = 30
  1266.         BitsPerPixel     = 8
  1267.         NumberOfPlanes   = 1
  1268.         PageLength       = 307200
  1269.         SaveSize         = 307200
  1270.         InterlaceMode    = 0
  1271.         BufferAddress    = 0x0a0000
  1272.  
  1273. [TrapRegs]
  1274.         0x3c2;
  1275.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1276.         0x3c5;
  1277.         0x3d4, 0x00-0x18, 0x30-0x31;
  1278.         0x3d5;
  1279.         0x3c0, 0x00-0x14;
  1280.         0x3c1;
  1281.         0x3ce, 0x00-0x08;
  1282.         0x3cf;
  1283.  
  1284. [Cleanup]
  1285.  
  1286. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1287. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1288. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1289. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  1290. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  1291. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1292. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1293. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  1294. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  1295. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1296. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1297. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  1298. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  1299.  
  1300. [Lock]
  1301. /*
  1302.  *      Lock Extended Registers
  1303.  */
  1304.  
  1305. outb(0x3c4, 0x05);
  1306. outb(0x3c5, 0x00);
  1307.  
  1308. [UnLock]
  1309. /*
  1310.  *      Unlock Extended Registers
  1311.  */
  1312.  
  1313. outb(0x3c4, 0x05);
  1314. outb(0x3c5, 0x01);
  1315.  
  1316. [SetMode]
  1317.  
  1318. /*
  1319.  *      Set Miscellaneous Output Register
  1320.  */
  1321.  
  1322. outb(0x3c2, 0xe3);
  1323.  
  1324.  
  1325. /*
  1326.  *      Unlock Extended Registers
  1327.  */
  1328.  
  1329. outb(0x3c4, 0x05);
  1330. outb(0x3c5, 0x01);
  1331.  
  1332. /*
  1333.  *      Set Sequencer Registers
  1334.  */
  1335.  
  1336. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  1337. boutb(5, 0x00, 0x3c4, 0x3c5);
  1338.  
  1339. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x00;
  1340. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  1341. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  1342. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  1343. r30  = 0x1d; r31  = 0x30; r32  = 0x02; r33  = 0x01; r34  = 0x03;
  1344. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  1345. boutb(30, 0x0a, 0x3c4, 0x3c5);
  1346.  
  1347. /*
  1348.  *      Set CRT Registers
  1349.  */
  1350.  
  1351. r17 = 0x0e;
  1352. boutb(1, 17, 0x3d4, 0x3d5);
  1353. r0   = 0xc3; r1   = 0x9f; r2   = 0xa1; r3   = 0x85; r4   = 0xa9;
  1354. r5   = 0x01; r6   = 0x0b; r7   = 0x3e; r8   = 0x00; r9   = 0x40;
  1355. r10  = 0x10; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1356. r15  = 0x00; r16  = 0xea; r17  = 0x8c; r18  = 0xdf; r19  = 0x50;
  1357. r20  = 0x00; r21  = 0xe7; r22  = 0x04; r23  = 0xe3; r24  = 0xff;
  1358. boutb(25, 0x00, 0x3d4, 0x3d5);
  1359.  
  1360. r48  = 0x00; r49  = 0x00;
  1361. boutb(2, 0x30, 0x3d4, 0x3d5);
  1362.  
  1363. /*
  1364.  *      Set Attribute Registers
  1365.  */
  1366.  
  1367. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1368. r5   = 0x05; r6   = 0x06; r7   = 0x07; r8   = 0x08; r9   = 0x09;
  1369. r10  = 0x0a; r11  = 0x0b; r12  = 0x0c; r13  = 0x0d; r14  = 0x0e;
  1370. r15  = 0x0f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1371. r20  = 0x00;
  1372. boutb(21, 0x00, 0x3c0, 0x3c1);
  1373.  
  1374. /*
  1375.  *      Set GDC Registers
  1376.  */
  1377.  
  1378. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1379. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  1380. boutb(9, 0x00, 0x3ce, 0x3cf);
  1381.  
  1382. /*
  1383.  *      Set Sequencer Registers
  1384.  */
  1385.  
  1386. r5   = 0x01;
  1387. boutb(1, 0x05, 0x3c4, 0x3c5);
  1388.  
  1389. [comment]
  1390.         Graphics Mode: 800 x 600 x 16 colours.
  1391.  
  1392. [AdapterType]
  1393.         NCR
  1394.  
  1395. [ChipSet]
  1396.         NCR77C22E
  1397.  
  1398. [ModeInfo]
  1399.         ModeAttributes   = 0x18
  1400.         BytesPerScanLine = 100
  1401.         XResolution      = 800
  1402.         YResolution      = 600
  1403.         TextRows         = 37
  1404.         BitsPerPixel     = 4
  1405.         NumberOfPlanes   = 4
  1406.         PageLength       = 60000
  1407.         SaveSize         = 240000
  1408.         InterlaceMode    = 0
  1409.         BufferAddress    = 0x0a0000
  1410.  
  1411. [TrapRegs]
  1412.         0x3c2;
  1413.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1414.         0x3c5;
  1415.         0x3d4, 0x00-0x18, 0x30-0x31;
  1416.         0x3d5;
  1417.         0x3c0, 0x00-0x14;
  1418.         0x3c1;
  1419.         0x3ce, 0x00-0x08;
  1420.         0x3cf;
  1421.  
  1422. [Cleanup]
  1423.  
  1424. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1425. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1426. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1427. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  1428. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  1429. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1430. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1431. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  1432. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  1433. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1434. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1435. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  1436. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  1437.  
  1438. [Lock]
  1439. /*
  1440.  *      Lock Extended Registers
  1441.  */
  1442.  
  1443. outb(0x3c4, 0x05);
  1444. outb(0x3c5, 0x00);
  1445.  
  1446. [UnLock]
  1447. /*
  1448.  *      Unlock Extended Registers
  1449.  */
  1450.  
  1451. outb(0x3c4, 0x05);
  1452. outb(0x3c5, 0x01);
  1453.  
  1454. [SetMode]
  1455.  
  1456. /*
  1457.  *      Set Miscellaneous Output Register
  1458.  */
  1459.  
  1460. outb(0x3c2, 0xeb);
  1461.  
  1462.  
  1463. /*
  1464.  *      Unlock Extended Registers
  1465.  */
  1466.  
  1467. outb(0x3c4, 0x05);
  1468. outb(0x3c5, 0x01);
  1469.  
  1470. /*
  1471.  *      Set Sequencer Registers
  1472.  */
  1473.  
  1474. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  1475. boutb(5, 0x00, 0x3c4, 0x3c5);
  1476.  
  1477. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x00;
  1478. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  1479. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  1480. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  1481. r30  = 0x01; r31  = 0x20; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  1482. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  1483. boutb(30, 0x0a, 0x3c4, 0x3c5);
  1484.  
  1485. /*
  1486.  *      Set CRT Registers
  1487.  */
  1488.  
  1489. r17 = 0x0e;
  1490. boutb(1, 17, 0x3d4, 0x3d5);
  1491. r0   = 0x7b; r1   = 0x63; r2   = 0x64; r3   = 0x9e; r4   = 0x69;
  1492. r5   = 0x92; r6   = 0x6f; r7   = 0xf0; r8   = 0x00; r9   = 0x60;
  1493. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1494. r15  = 0x00; r16  = 0x58; r17  = 0x8a; r18  = 0x57; r19  = 0x32;
  1495. r20  = 0x00; r21  = 0x58; r22  = 0x6f; r23  = 0xe3; r24  = 0xff;
  1496. boutb(25, 0x00, 0x3d4, 0x3d5);
  1497.  
  1498. r48  = 0x00; r49  = 0x00;
  1499. boutb(2, 0x30, 0x3d4, 0x3d5);
  1500.  
  1501. /*
  1502.  *      Set Attribute Registers
  1503.  */
  1504.  
  1505. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1506. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  1507. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  1508. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1509. r20  = 0x00;
  1510. boutb(21, 0x00, 0x3c0, 0x3c1);
  1511.  
  1512. /*
  1513.  *      Set GDC Registers
  1514.  */
  1515.  
  1516. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1517. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  1518. boutb(9, 0x00, 0x3ce, 0x3cf);
  1519.  
  1520. /*
  1521.  *      Set Sequencer Registers
  1522.  */
  1523.  
  1524. r5   = 0x01;
  1525. boutb(1, 0x05, 0x3c4, 0x3c5);
  1526.  
  1527. [comment]
  1528.         Graphics Mode: 800 x 600 x 256 colours.
  1529.  
  1530. [AdapterType]
  1531.         NCR
  1532.  
  1533. [ChipSet]
  1534.         NCR77C22E
  1535.  
  1536. [ModeInfo]
  1537.         ModeAttributes   = 0x18
  1538.         BytesPerScanLine = 100
  1539.         XResolution      = 800
  1540.         YResolution      = 600
  1541.         TextRows         = 37
  1542.         BitsPerPixel     = 8
  1543.         NumberOfPlanes   = 1
  1544.         PageLength       = 480000
  1545.         SaveSize         = 480000
  1546.         InterlaceMode    = 0
  1547.         BufferAddress    = 0x0a0000
  1548.  
  1549. [TrapRegs]
  1550.         0x3c2;
  1551.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1552.         0x3c5;
  1553.         0x3d4, 0x00-0x18, 0x30-0x31;
  1554.         0x3d5;
  1555.         0x3c0, 0x00-0x14;
  1556.         0x3c1;
  1557.         0x3ce, 0x00-0x08;
  1558.         0x3cf;
  1559.  
  1560. [Cleanup]
  1561.  
  1562. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1563. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1564. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1565. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  1566. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  1567. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1568. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1569. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  1570. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  1571. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1572. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1573. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  1574. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  1575.  
  1576. [Lock]
  1577. /*
  1578.  *      Lock Extended Registers
  1579.  */
  1580.  
  1581. outb(0x3c4, 0x05);
  1582. outb(0x3c5, 0x00);
  1583.  
  1584. [UnLock]
  1585. /*
  1586.  *      Unlock Extended Registers
  1587.  */
  1588.  
  1589. outb(0x3c4, 0x05);
  1590. outb(0x3c5, 0x01);
  1591.  
  1592. [SetMode]
  1593.  
  1594. /*
  1595.  *      Set Miscellaneous Output Register
  1596.  */
  1597.  
  1598. outb(0x3c2, 0xeb);
  1599.  
  1600.  
  1601. /*
  1602.  *      Unlock Extended Registers
  1603.  */
  1604.  
  1605. outb(0x3c4, 0x05);
  1606. outb(0x3c5, 0x01);
  1607.  
  1608. /*
  1609.  *      Set Sequencer Registers
  1610.  */
  1611.  
  1612. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  1613. boutb(5, 0x00, 0x3c4, 0x3c5);
  1614.  
  1615. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x00;
  1616. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  1617. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  1618. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  1619. r30  = 0x1d; r31  = 0x30; r32  = 0x02; r33  = 0x01; r34  = 0x03;
  1620. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  1621. boutb(30, 0x0a, 0x3c4, 0x3c5);
  1622.  
  1623. /*
  1624.  *      Set CRT Registers
  1625.  */
  1626.  
  1627. r17 = 0x0e;
  1628. boutb(1, 17, 0x3d4, 0x3d5);
  1629. r0   = 0xfb; r1   = 0xc7; r2   = 0xc9; r3   = 0x9d; r4   = 0xd1;
  1630. r5   = 0x83; r6   = 0x6f; r7   = 0xf0; r8   = 0x00; r9   = 0x60;
  1631. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1632. r15  = 0x00; r16  = 0x58; r17  = 0x8a; r18  = 0x57; r19  = 0x64;
  1633. r20  = 0x00; r21  = 0x58; r22  = 0x6f; r23  = 0xe3; r24  = 0xff;
  1634. boutb(25, 0x00, 0x3d4, 0x3d5);
  1635.  
  1636. r48  = 0x00; r49  = 0x00;
  1637. boutb(2, 0x30, 0x3d4, 0x3d5);
  1638.  
  1639. /*
  1640.  *      Set Attribute Registers
  1641.  */
  1642.  
  1643. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1644. r5   = 0x05; r6   = 0x06; r7   = 0x07; r8   = 0x08; r9   = 0x09;
  1645. r10  = 0x0a; r11  = 0x0b; r12  = 0x0c; r13  = 0x0d; r14  = 0x0e;
  1646. r15  = 0x0f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1647. r20  = 0x00;
  1648. boutb(21, 0x00, 0x3c0, 0x3c1);
  1649.  
  1650. /*
  1651.  *      Set GDC Registers
  1652.  */
  1653.  
  1654. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1655. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  1656. boutb(9, 0x00, 0x3ce, 0x3cf);
  1657.  
  1658. /*
  1659.  *      Set Sequencer Registers
  1660.  */
  1661.  
  1662. r5   = 0x01;
  1663. boutb(1, 0x05, 0x3c4, 0x3c5);
  1664.  
  1665. [comment]
  1666.         Graphics Mode: 1024 x 768 x 16 colours.
  1667.  
  1668. [AdapterType]
  1669.         NCR
  1670.  
  1671. [ChipSet]
  1672.         NCR77C22E
  1673.  
  1674. [ModeInfo]
  1675.         ModeAttributes   = 0x18
  1676.         BytesPerScanLine = 128
  1677.         XResolution      = 1024
  1678.         YResolution      = 768
  1679.         TextRows         = 48
  1680.         BitsPerPixel     = 4
  1681.         NumberOfPlanes   = 4
  1682.         PageLength       = 98304
  1683.         SaveSize         = 393216
  1684.         InterlaceMode    = 0
  1685.         BufferAddress    = 0x0a0000
  1686.  
  1687. [TrapRegs]
  1688.         0x3c2;
  1689.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1690.         0x3c5;
  1691.         0x3d4, 0x00-0x18, 0x30-0x31;
  1692.         0x3d5;
  1693.         0x3c0, 0x00-0x14;
  1694.         0x3c1;
  1695.         0x3ce, 0x00-0x08;
  1696.         0x3cf;
  1697.  
  1698. [Cleanup]
  1699.  
  1700. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1701. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1702. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1703. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  1704. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  1705. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1706. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1707. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  1708. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  1709. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1710. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1711. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  1712. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  1713.  
  1714. [Lock]
  1715. /*
  1716.  *      Lock Extended Registers
  1717.  */
  1718.  
  1719. outb(0x3c4, 0x05);
  1720. outb(0x3c5, 0x00);
  1721.  
  1722. [UnLock]
  1723. /*
  1724.  *      Unlock Extended Registers
  1725.  */
  1726.  
  1727. outb(0x3c4, 0x05);
  1728. outb(0x3c5, 0x01);
  1729.  
  1730. [SetMode]
  1731.  
  1732. /*
  1733.  *      Set Miscellaneous Output Register
  1734.  */
  1735.  
  1736. outb(0x3c2, 0x23);
  1737.  
  1738.  
  1739. /*
  1740.  *      Unlock Extended Registers
  1741.  */
  1742.  
  1743. outb(0x3c4, 0x05);
  1744. outb(0x3c5, 0x01);
  1745.  
  1746. /*
  1747.  *      Set Sequencer Registers
  1748.  */
  1749.  
  1750. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  1751. boutb(5, 0x00, 0x3c4, 0x3c5);
  1752.  
  1753. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x00;
  1754. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  1755. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  1756. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  1757. r30  = 0x1d; r31  = 0x60; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  1758. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  1759. boutb(30, 0x0a, 0x3c4, 0x3c5);
  1760.  
  1761. /*
  1762.  *      Set CRT Registers
  1763.  */
  1764.  
  1765. r17 = 0x0e;
  1766. boutb(1, 17, 0x3d4, 0x3d5);
  1767. r0   = 0x99; r1   = 0x7f; r2   = 0x80; r3   = 0x9c; r4   = 0x83;
  1768. r5   = 0x19; r6   = 0x96; r7   = 0x1f; r8   = 0x00; r9   = 0x60;
  1769. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1770. r15  = 0x00; r16  = 0x82; r17  = 0x86; r18  = 0x7f; r19  = 0x40;
  1771. r20  = 0x00; r21  = 0x82; r22  = 0x93; r23  = 0xe3; r24  = 0xff;
  1772. boutb(25, 0x00, 0x3d4, 0x3d5);
  1773.  
  1774. r48  = 0x10; r49  = 0x00;
  1775. boutb(2, 0x30, 0x3d4, 0x3d5);
  1776.  
  1777. /*
  1778.  *      Set Attribute Registers
  1779.  */
  1780.  
  1781. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1782. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  1783. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  1784. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1785. r20  = 0x00;
  1786. boutb(21, 0x00, 0x3c0, 0x3c1);
  1787.  
  1788. /*
  1789.  *      Set GDC Registers
  1790.  */
  1791.  
  1792. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1793. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  1794. boutb(9, 0x00, 0x3ce, 0x3cf);
  1795.  
  1796. /*
  1797.  *      Set Sequencer Registers
  1798.  */
  1799.  
  1800. r5   = 0x01;
  1801. boutb(1, 0x05, 0x3c4, 0x3c5);
  1802.  
  1803. [comment]
  1804.         Graphics Mode: 1024 x 768 x 256 colours.
  1805.  
  1806. [AdapterType]
  1807.         NCR
  1808.  
  1809. [ChipSet]
  1810.         NCR77C22E
  1811.  
  1812. [ModeInfo]
  1813.         ModeAttributes   = 0x18
  1814.         BytesPerScanLine = 128
  1815.         XResolution      = 1024
  1816.         YResolution      = 768
  1817.         TextRows         = 48
  1818.         BitsPerPixel     = 8
  1819.         NumberOfPlanes   = 1
  1820.         PageLength       = 786432
  1821.         SaveSize         = 786432
  1822.         InterlaceMode    = 0
  1823.         BufferAddress    = 0x0a0000
  1824.  
  1825. [TrapRegs]
  1826.         0x3c2;
  1827.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1828.         0x3c5;
  1829.         0x3d4, 0x00-0x18, 0x30-0x31;
  1830.         0x3d5;
  1831.         0x3c0, 0x00-0x14;
  1832.         0x3c1;
  1833.         0x3ce, 0x00-0x08;
  1834.         0x3cf;
  1835.  
  1836. [Cleanup]
  1837.  
  1838. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1839. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1840. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1841. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  1842. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  1843. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1844. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1845. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  1846. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  1847. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1848. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1849. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  1850. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  1851.  
  1852. [Lock]
  1853. /*
  1854.  *      Lock Extended Registers
  1855.  */
  1856.  
  1857. outb(0x3c4, 0x05);
  1858. outb(0x3c5, 0x00);
  1859.  
  1860. [UnLock]
  1861. /*
  1862.  *      Unlock Extended Registers
  1863.  */
  1864.  
  1865. outb(0x3c4, 0x05);
  1866. outb(0x3c5, 0x01);
  1867.  
  1868. [SetMode]
  1869.  
  1870. /*
  1871.  *      Set Miscellaneous Output Register
  1872.  */
  1873.  
  1874. outb(0x3c2, 0x23);
  1875.  
  1876.  
  1877. /*
  1878.  *      Unlock Extended Registers
  1879.  */
  1880.  
  1881. outb(0x3c4, 0x05);
  1882. outb(0x3c5, 0x01);
  1883.  
  1884. /*
  1885.  *      Set Sequencer Registers
  1886.  */
  1887.  
  1888. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  1889. boutb(5, 0x00, 0x3c4, 0x3c5);
  1890.  
  1891. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x00;
  1892. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  1893. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  1894. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  1895. r30  = 0x1d; r31  = 0x70; r32  = 0x02; r33  = 0x01; r34  = 0x03;
  1896. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  1897. boutb(30, 0x0a, 0x3c4, 0x3c5);
  1898.  
  1899. /*
  1900.  *      Set CRT Registers
  1901.  */
  1902.  
  1903. r17 = 0x0e;
  1904. boutb(1, 17, 0x3d4, 0x3d5);
  1905. r0   = 0x37; r1   = 0xff; r2   = 0x01; r3   = 0x99; r4   = 0x06;
  1906. r5   = 0x86; r6   = 0x96; r7   = 0x1f; r8   = 0x00; r9   = 0x60;
  1907. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1908. r15  = 0x00; r16  = 0x82; r17  = 0x86; r18  = 0x7f; r19  = 0x80;
  1909. r20  = 0x00; r21  = 0x82; r22  = 0x93; r23  = 0xe3; r24  = 0xff;
  1910. boutb(25, 0x00, 0x3d4, 0x3d5);
  1911.  
  1912. r48  = 0x1d; r49  = 0x00;
  1913. boutb(2, 0x30, 0x3d4, 0x3d5);
  1914.  
  1915. /*
  1916.  *      Set Attribute Registers
  1917.  */
  1918.  
  1919. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1920. r5   = 0x05; r6   = 0x06; r7   = 0x07; r8   = 0x08; r9   = 0x09;
  1921. r10  = 0x0a; r11  = 0x0b; r12  = 0x0c; r13  = 0x0d; r14  = 0x0e;
  1922. r15  = 0x0f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1923. r20  = 0x00;
  1924. boutb(21, 0x00, 0x3c0, 0x3c1);
  1925.  
  1926. /*
  1927.  *      Set GDC Registers
  1928.  */
  1929.  
  1930. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1931. r5   = 0x00; r6   = 0x05; r7   = 0xff; r8   = 0xff;
  1932. boutb(9, 0x00, 0x3ce, 0x3cf);
  1933.  
  1934. /*
  1935.  *      Set Sequencer Registers
  1936.  */
  1937.  
  1938. r5   = 0x01;
  1939. boutb(1, 0x05, 0x3c4, 0x3c5);
  1940.  
  1941. [comment]
  1942.         Text Mode: 40 cols, 25 rows.
  1943.  
  1944. [AdapterType]
  1945.         NCR
  1946.  
  1947. [ChipSet]
  1948.         NCR77C22E
  1949.  
  1950. [ModeInfo]
  1951.         ModeAttributes   = 0x08
  1952.         BytesPerScanLine = 40
  1953.         XResolution      = 360
  1954.         YResolution      = 400
  1955.         XCharSize        = 9
  1956.         YCharSize        = 16
  1957.         TextRows         = 25
  1958.         BitsPerPixel     = 4
  1959.         NumberOfPlanes   = 1
  1960.         PageLength       = 4000
  1961.         SaveSize         = 4000
  1962.         InterlaceMode    = 0
  1963.         BufferAddress    = 0x0b8000
  1964.  
  1965. [TrapRegs]
  1966.         0x3c2;
  1967.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1968.         0x3c5;
  1969.         0x3d4, 0x00-0x18, 0x30-0x31;
  1970.         0x3d5;
  1971.         0x3c0, 0x00-0x14;
  1972.         0x3c1;
  1973.         0x3ce, 0x00-0x08;
  1974.         0x3cf;
  1975.  
  1976. [Cleanup]
  1977.  
  1978. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1979. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1980. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1981. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  1982. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  1983. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1984. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1985. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  1986. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  1987. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1988. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1989. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  1990. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  1991.  
  1992. [Lock]
  1993. /*
  1994.  *      Lock Extended Registers
  1995.  */
  1996.  
  1997. outb(0x3c4, 0x05);
  1998. outb(0x3c5, 0x00);
  1999.  
  2000. [UnLock]
  2001. /*
  2002.  *      Unlock Extended Registers
  2003.  */
  2004.  
  2005. outb(0x3c4, 0x05);
  2006. outb(0x3c5, 0x01);
  2007.  
  2008. [SetMode]
  2009.  
  2010. /*
  2011.  *      Set Miscellaneous Output Register
  2012.  */
  2013.  
  2014. outb(0x3c2, 0x67);
  2015.  
  2016.  
  2017. /*
  2018.  *      Unlock Extended Registers
  2019.  */
  2020.  
  2021. outb(0x3c4, 0x05);
  2022. outb(0x3c5, 0x01);
  2023.  
  2024. /*
  2025.  *      Set Sequencer Registers
  2026.  */
  2027.  
  2028. r0   = 0x03; r1   = 0x08; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  2029. boutb(5, 0x00, 0x3c4, 0x3c5);
  2030.  
  2031. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x00;
  2032. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  2033. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  2034. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  2035. r30  = 0x01; r31  = 0x20; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  2036. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  2037. boutb(30, 0x0a, 0x3c4, 0x3c5);
  2038.  
  2039. /*
  2040.  *      Set CRT Registers
  2041.  */
  2042.  
  2043. r17 = 0x0e;
  2044. boutb(1, 17, 0x3d4, 0x3d5);
  2045. r0   = 0x2d; r1   = 0x27; r2   = 0x28; r3   = 0x90; r4   = 0x2b;
  2046. r5   = 0xa0; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  2047. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  2048. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x14;
  2049. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  2050. boutb(25, 0x00, 0x3d4, 0x3d5);
  2051.  
  2052. r48  = 0x00; r49  = 0x00;
  2053. boutb(2, 0x30, 0x3d4, 0x3d5);
  2054.  
  2055. /*
  2056.  *      Set Attribute Registers
  2057.  */
  2058.  
  2059. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  2060. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  2061. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  2062. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x08;
  2063. r20  = 0x00;
  2064. boutb(21, 0x00, 0x3c0, 0x3c1);
  2065.  
  2066. /*
  2067.  *      Set GDC Registers
  2068.  */
  2069.  
  2070. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  2071. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  2072. boutb(9, 0x00, 0x3ce, 0x3cf);
  2073.  
  2074. /*
  2075.  *      Set Sequencer Registers
  2076.  */
  2077.  
  2078. r5   = 0x01;
  2079. boutb(1, 0x05, 0x3c4, 0x3c5);
  2080.  
  2081. [comment]
  2082.         Text Mode: 80 cols, 25 rows.
  2083.  
  2084. [AdapterType]
  2085.         NCR
  2086.  
  2087. [ChipSet]
  2088.         NCR77C22E
  2089.  
  2090. [ModeInfo]
  2091.         ModeAttributes   = 0x08
  2092.         BytesPerScanLine = 80
  2093.         XResolution      = 720
  2094.         YResolution      = 400
  2095.         XCharSize        = 9
  2096.         YCharSize        = 16
  2097.         TextRows         = 25
  2098.         BitsPerPixel     = 4
  2099.         NumberOfPlanes   = 1
  2100.         PageLength       = 4000
  2101.         SaveSize         = 4000
  2102.         InterlaceMode    = 0
  2103.         BufferAddress    = 0x0b8000
  2104.  
  2105. [TrapRegs]
  2106.         0x3c2;
  2107.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  2108.         0x3c5;
  2109.         0x3d4, 0x00-0x18, 0x30-0x31;
  2110.         0x3d5;
  2111.         0x3c0, 0x00-0x14;
  2112.         0x3c1;
  2113.         0x3ce, 0x00-0x08;
  2114.         0x3cf;
  2115.  
  2116. [Cleanup]
  2117.  
  2118. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  2119. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  2120. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  2121. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  2122. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  2123. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  2124. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  2125. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  2126. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  2127. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  2128. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  2129. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  2130. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  2131.  
  2132. [Lock]
  2133. /*
  2134.  *      Lock Extended Registers
  2135.  */
  2136.  
  2137. outb(0x3c4, 0x05);
  2138. outb(0x3c5, 0x00);
  2139.  
  2140. [UnLock]
  2141. /*
  2142.  *      Unlock Extended Registers
  2143.  */
  2144.  
  2145. outb(0x3c4, 0x05);
  2146. outb(0x3c5, 0x01);
  2147.  
  2148. [SetMode]
  2149.  
  2150. /*
  2151.  *      Set Miscellaneous Output Register
  2152.  */
  2153.  
  2154. outb(0x3c2, 0x67);
  2155.  
  2156.  
  2157. /*
  2158.  *      Unlock Extended Registers
  2159.  */
  2160.  
  2161. outb(0x3c4, 0x05);
  2162. outb(0x3c5, 0x01);
  2163.  
  2164. /*
  2165.  *      Set Sequencer Registers
  2166.  */
  2167.  
  2168. r0   = 0x03; r1   = 0x00; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  2169. boutb(5, 0x00, 0x3c4, 0x3c5);
  2170.  
  2171. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x00;
  2172. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  2173. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  2174. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  2175. r30  = 0x01; r31  = 0x20; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  2176. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  2177. boutb(30, 0x0a, 0x3c4, 0x3c5);
  2178.  
  2179. /*
  2180.  *      Set CRT Registers
  2181.  */
  2182.  
  2183. r17 = 0x0e;
  2184. boutb(1, 17, 0x3d4, 0x3d5);
  2185. r0   = 0x5f; r1   = 0x4f; r2   = 0x50; r3   = 0x82; r4   = 0x55;
  2186. r5   = 0x81; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  2187. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  2188. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x28;
  2189. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  2190. boutb(25, 0x00, 0x3d4, 0x3d5);
  2191.  
  2192. r48  = 0x00; r49  = 0x00;
  2193. boutb(2, 0x30, 0x3d4, 0x3d5);
  2194.  
  2195. /*
  2196.  *      Set Attribute Registers
  2197.  */
  2198.  
  2199. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  2200. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  2201. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  2202. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x08;
  2203. r20  = 0x00;
  2204. boutb(21, 0x00, 0x3c0, 0x3c1);
  2205.  
  2206. /*
  2207.  *      Set GDC Registers
  2208.  */
  2209.  
  2210. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  2211. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  2212. boutb(9, 0x00, 0x3ce, 0x3cf);
  2213.  
  2214. /*
  2215.  *      Set Sequencer Registers
  2216.  */
  2217.  
  2218. r5   = 0x01;
  2219. boutb(1, 0x05, 0x3c4, 0x3c5);
  2220.  
  2221. [comment]
  2222.         Text Mode: 132 cols, 25 rows.
  2223.  
  2224. [AdapterType]
  2225.         NCR
  2226.  
  2227. [ChipSet]
  2228.         NCR77C22E
  2229.  
  2230. [ModeInfo]
  2231.         ModeAttributes   = 0x08
  2232.         BytesPerScanLine = 132
  2233.         XResolution      = 1056
  2234.         YResolution      = 400
  2235.         XCharSize        = 8
  2236.         YCharSize        = 16
  2237.         TextRows         = 25
  2238.         BitsPerPixel     = 4
  2239.         NumberOfPlanes   = 1
  2240.         PageLength       = 6600
  2241.         SaveSize         = 6600
  2242.         InterlaceMode    = 0
  2243.         BufferAddress    = 0x0b8000
  2244.  
  2245. [TrapRegs]
  2246.         0x3c2;
  2247.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  2248.         0x3c5;
  2249.         0x3d4, 0x00-0x18, 0x30-0x31;
  2250.         0x3d5;
  2251.         0x3c0, 0x00-0x14;
  2252.         0x3c1;
  2253.         0x3ce, 0x00-0x08;
  2254.         0x3cf;
  2255.  
  2256. [Cleanup]
  2257.  
  2258. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  2259. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  2260. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  2261. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  2262. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  2263. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  2264. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  2265. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  2266. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  2267. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  2268. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  2269. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  2270. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  2271.  
  2272. [Lock]
  2273. /*
  2274.  *      Lock Extended Registers
  2275.  */
  2276.  
  2277. outb(0x3c4, 0x05);
  2278. outb(0x3c5, 0x00);
  2279.  
  2280. [UnLock]
  2281. /*
  2282.  *      Unlock Extended Registers
  2283.  */
  2284.  
  2285. outb(0x3c4, 0x05);
  2286. outb(0x3c5, 0x01);
  2287.  
  2288. [SetMode]
  2289.  
  2290. /*
  2291.  *      Set Miscellaneous Output Register
  2292.  */
  2293.  
  2294. outb(0x3c2, 0x6b);
  2295.  
  2296.  
  2297. /*
  2298.  *      Unlock Extended Registers
  2299.  */
  2300.  
  2301. outb(0x3c4, 0x05);
  2302. outb(0x3c5, 0x01);
  2303.  
  2304. /*
  2305.  *      Set Sequencer Registers
  2306.  */
  2307.  
  2308. r0   = 0x03; r1   = 0x00; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  2309. boutb(5, 0x00, 0x3c4, 0x3c5);
  2310.  
  2311. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x00;
  2312. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  2313. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  2314. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  2315. r30  = 0x01; r31  = 0x31; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  2316. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  2317. boutb(30, 0x0a, 0x3c4, 0x3c5);
  2318.  
  2319. /*
  2320.  *      Set CRT Registers
  2321.  */
  2322.  
  2323. r17 = 0x0e;
  2324. boutb(1, 17, 0x3d4, 0x3d5);
  2325. r0   = 0x9e; r1   = 0x83; r2   = 0x84; r3   = 0x81; r4   = 0x8a;
  2326. r5   = 0x9e; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  2327. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  2328. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x42;
  2329. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  2330. boutb(25, 0x00, 0x3d4, 0x3d5);
  2331.  
  2332. r48  = 0x00; r49  = 0x00;
  2333. boutb(2, 0x30, 0x3d4, 0x3d5);
  2334.  
  2335. /*
  2336.  *      Set Attribute Registers
  2337.  */
  2338.  
  2339. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  2340. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  2341. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  2342. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  2343. r20  = 0x00;
  2344. boutb(21, 0x00, 0x3c0, 0x3c1);
  2345.  
  2346. /*
  2347.  *      Set GDC Registers
  2348.  */
  2349.  
  2350. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  2351. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  2352. boutb(9, 0x00, 0x3ce, 0x3cf);
  2353.  
  2354. /*
  2355.  *      Set Sequencer Registers
  2356.  */
  2357.  
  2358. r5   = 0x01;
  2359. boutb(1, 0x05, 0x3c4, 0x3c5);
  2360.  
  2361. [comment]
  2362.         Text Mode: 132 cols, 43 rows.
  2363.  
  2364. [AdapterType]
  2365.         NCR
  2366.  
  2367. [ChipSet]
  2368.         NCR77C22E
  2369.  
  2370. [ModeInfo]
  2371.         ModeAttributes   = 0x08
  2372.         BytesPerScanLine = 132
  2373.         XResolution      = 1056
  2374.         YResolution      = 387
  2375.         XCharSize        = 8
  2376.         YCharSize        = 8
  2377.         TextRows         = 43
  2378.         BitsPerPixel     = 4
  2379.         NumberOfPlanes   = 1
  2380.         PageLength       = 11352
  2381.         SaveSize         = 11352
  2382.         InterlaceMode    = 0
  2383.         BufferAddress    = 0x0b8000
  2384.  
  2385. [TrapRegs]
  2386.         0x3c2;
  2387.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  2388.         0x3c5;
  2389.         0x3d4, 0x00-0x18, 0x30-0x31;
  2390.         0x3d5;
  2391.         0x3c0, 0x00-0x14;
  2392.         0x3c1;
  2393.         0x3ce, 0x00-0x08;
  2394.         0x3cf;
  2395.  
  2396. [Cleanup]
  2397.  
  2398. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  2399. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  2400. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  2401. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  2402. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  2403. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  2404. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  2405. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  2406. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  2407. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  2408. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  2409. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  2410. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  2411.  
  2412. [Lock]
  2413. /*
  2414.  *      Lock Extended Registers
  2415.  */
  2416.  
  2417. outb(0x3c4, 0x05);
  2418. outb(0x3c5, 0x00);
  2419.  
  2420. [UnLock]
  2421. /*
  2422.  *      Unlock Extended Registers
  2423.  */
  2424.  
  2425. outb(0x3c4, 0x05);
  2426. outb(0x3c5, 0x01);
  2427.  
  2428. [SetMode]
  2429.  
  2430. /*
  2431.  *      Set Miscellaneous Output Register
  2432.  */
  2433.  
  2434. outb(0x3c2, 0x6b);
  2435.  
  2436.  
  2437. /*
  2438.  *      Unlock Extended Registers
  2439.  */
  2440.  
  2441. outb(0x3c4, 0x05);
  2442. outb(0x3c5, 0x01);
  2443.  
  2444. /*
  2445.  *      Set Sequencer Registers
  2446.  */
  2447.  
  2448. r0   = 0x03; r1   = 0x01; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  2449. boutb(5, 0x00, 0x3c4, 0x3c5);
  2450.  
  2451. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x00;
  2452. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  2453. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  2454. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  2455. r30  = 0x01; r31  = 0x31; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  2456. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  2457. boutb(30, 0x0a, 0x3c4, 0x3c5);
  2458.  
  2459. /*
  2460.  *      Set CRT Registers
  2461.  */
  2462.  
  2463. r17 = 0x0e;
  2464. boutb(1, 17, 0x3d4, 0x3d5);
  2465. r0   = 0x9e; r1   = 0x83; r2   = 0x84; r3   = 0x81; r4   = 0x8a;
  2466. r5   = 0x9e; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x48;
  2467. r10  = 0x07; r11  = 0x08; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  2468. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x42;
  2469. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  2470. boutb(25, 0x00, 0x3d4, 0x3d5);
  2471.  
  2472. r48  = 0x00; r49  = 0x00;
  2473. boutb(2, 0x30, 0x3d4, 0x3d5);
  2474.  
  2475. /*
  2476.  *      Set Attribute Registers
  2477.  */
  2478.  
  2479. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  2480. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  2481. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  2482. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  2483. r20  = 0x00;
  2484. boutb(21, 0x00, 0x3c0, 0x3c1);
  2485.  
  2486. /*
  2487.  *      Set GDC Registers
  2488.  */
  2489.  
  2490. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  2491. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  2492. boutb(9, 0x00, 0x3ce, 0x3cf);
  2493.  
  2494. /*
  2495.  *      Set Sequencer Registers
  2496.  */
  2497.  
  2498. r5   = 0x01;
  2499. boutb(1, 0x05, 0x3c4, 0x3c5);
  2500.  
  2501.